package net.xrkw.server.module.client.controller.admin.softinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 软件信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class SoftInfoRespVO {

    @Schema(description = "软件ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18400")
    @ExcelProperty("软件ID")
    private Long id;

    @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7333")
    @ExcelProperty("分类ID")
    private Long categoryId;

    @Schema(description = "软件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @ExcelProperty("软件名称")
    private String softName;

    @Schema(description = "版本号")
    @ExcelProperty("版本号")
    private String version;

    @Schema(description = "软件大小")
    @ExcelProperty("软件大小")
    private String size;

    @Schema(description = "适用平台")
    @ExcelProperty("适用平台")
    private String platform;

    @Schema(description = "图标地址")
    @ExcelProperty("图标地址")
    private String icon;

    @Schema(description = "软件描述", example = "你说的对")
    @ExcelProperty("软件描述")
    private String description;

    @Schema(description = "功能特点")
    @ExcelProperty("功能特点")
    private String features;

    @Schema(description = "安装指南")
    @ExcelProperty("安装指南")
    private String installGuide;

    @Schema(description = "下载次数", example = "14515")
    @ExcelProperty("下载次数")
    private Integer downloadCount;

    @Schema(description = "所需积分")
    @ExcelProperty("所需积分")
    private Integer pointsRequired;

    @Schema(description = "文件地址", example = "https://www.iocoder.cn")
    @ExcelProperty("文件地址")
    private String fileUrl;

    @Schema(description = "状态（0正常 1停用）", example = "1")
    @ExcelProperty("状态（0正常 1停用）")
    private Integer status;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}